Анализ логов сервера: как понять, что вас пытаются взломать?

Giteqa

Приветствую, друзья!

Когда вы арендуете VPS и поднимаете на нем проект, вам может казаться, что в системе царит полная тишина, пока на сайт не зайдут реальные пользователи. Но стоит открыть сырые системные логи, как иллюзия спокойствия мгновенно рушится. В 2026 году интернет превратился в агрессивную среду, где тысячи автоматизированных ИИ-сканеров и ботнетов круглые сутки прощупывают каждый доступный IPv4 и IPv6 адрес в поисках уязвимостей.

Большинство успешных хакерских атак происходят не потому, что злоумышленники используют сверхсложные приватные эксплойты. Хакеры просто находят открытую админку, забытый бэкап в публичной папке или подбирают слабый пароль к SSH. Сервер всегда «кричит» о том, что его атакуют, оставляя сотни записей в журналах. Главное — уметь эти записи читать. Из личного опыта (так как я снимаю видео-туториалы для нашего YouTube-канала) могу сказать следующее: даже если сервер поднят считанные минуты, его уже прощупывают боты, и это отлично видно, как только вы откроете папку логов.

В этой статье мы разберем основные маркеры подозрительной активности в логах Linux (Ubuntu 24.04 / Debian) и Nginx, а также научимся вычислять злоумышленников до того, как они нанесут реальный ущерб.

Key Takeaways: Главное об анализе логов

  • Логи — это черные ящики системы: При любой аномалии в поведении сервера аудит нужно начинать с двух главных точек: /var/log/auth.log (безопасность ОС) и журнала доступа веб-сервера.

  • Автоматизация против рутины: Искать следы взлома вручную в текстовых файлах объемом в гигабайты неэффективно. Используйте регулярные выражения и утилиты автоматизации (Fail2ban, Graylog).

  • Тишина — плохой знак: Если файлы логов весят ровно 0 байт или внезапно прерываются, это верный признак того, что злоумышленник уже закрепился в системе и зачистил следы своего присутствия.

Как установить Fail2ban и Graylog?

Мы сняли подробные видеоинструкции, которые показывают весь процесс установки и настройки обоих инструментов автоматической защиты и мониторинга на вашем сервере:

  • Видеоинструкция по установке Fail2ban на Ubuntu:


    Все команды для настройки тюрьмы SSH и таймаутов блокировки вы найдете в описании под видео и в закрепленном комментарии.

  • Видеоинструкция по развертыванию системы сбора логов Graylog:


    Все конфигурационные файлы, ключи репозиториев и команды для интеграции дата-ноды доступны в описании под видео.

Главные индикаторы атаки: Что искать в журналах?

1. Брутфорс SSH (Подбор паролей)

Журнал авторизации — это первое место, куда бьют ботнеты. Откройте файл /var/log/auth.log (в CentOS/RHEL это /var/log/secure). Если вы видите бесконечные строки вида:

Plaintext
Failed password for invalid user admin from 192.0.2.5 port 43210 ssh2

Это означает, что к вашему серверу прямо сейчас подбирают пароль по словарю, планомерно перебирая популярные логины (root, admin, user, test).

2. Поиск скрытых файлов и админок (Web Scanning)

В логах веб-сервера Nginx или Apache (/var/log/nginx/access.log) атака выглядит как лавина быстрых запросов, возвращающих статус 404 Not Found. Сканеры ищут уязвимые интерфейсы и файлы конфигураций:

  • GET /wp-admin/ или /wp-login.php (поиск уязвимостей WordPress)

  • GET /.env или GET /config.json (попытки украсть пароли от БД и API-ключи)

  • GET /.git/config (попытка выкачать репозиторий проекта)

  • GET /phpMyAdmin/index.php (поиск панелей управления базами данных)

3. SQL-инъекции и удаленный запуск команд (RCE)

Если в логах веб-сервера появляются запросы с обилием странных символов, кавычек или системных путей, вас пытаются взломать направленно:

  • GET /index.php?id=1+AND+(SELECT+321+FROM+(SELECT(SLEEP(5))) — проверка на наличие слепой SQL-инъекции.

  • GET /cgi-bin/main.cgi?cmd=cat%/etc/passwd — попытка несанкционированного чтения системных файлов Linux.

Сравнительная таблица: Типы активности в серверных логах

Тип активностиКак выглядит строка в логе (пример)На что нацелена атакаПервоочередное действие админа
SSH Brute ForceFailed password for root from...Захват полного контроля над ОС.Смена порта SSH, запрет root-авторизации, вход по ключам.
Уязвимости CMSGET /wp-content/plugins/... 200Внедрение веб-шелла или спам-скрипта.Немедленное обновление плагинов и ядра CMS.
Path TraversalGET /../../etc/passwd 400Чтение конфигов и приватных данных.Корректная настройка прав open_basedir в PHP.
Сканирование портовКороткие TCP-запросы без передачи данных.Составление карты открытых служб сервера.Закрытие всех неиспользуемых портов через UFW/iptables.

Практикум: 3 команды для быстрого аудита сервера в консоли

Чтобы быстро оценить обстановку на сервере под управлением Ubuntu 24.04, используйте эти простые терминальные команды. Они агрегируют текстовый мусор в понятную и полезную статистику:

  1. Поиск топ-10 IP-адресов, штурмующих ваш SSH:

    Bash
    sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -n 10
    
  2. Анализ самых частых 404-ошибок в Nginx (выявление автоматических сканеров):

    Bash
    sudo awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
    
  3. Проверка успешных входов под всеми учетными записями:

    Bash
    sudo grep "Accepted password\|Accepted publickey" /var/log/auth.log
    

FAQ: Коротко о главном

  • На сервере тысячи Failed password каждый день, пора паниковать?

    Нет, это стандартный фоновый шум интернета. Роботы перебирают все IP-адреса подряд. До тех пор, пока у вас полностью отключен вход по паролю для пользователя root и корректно настроен Fail2ban, эти попытки абсолютно безопасны для сервера.

  • Что делать, если я обнаружил IP-адрес взломщика?

    Заблокируйте его на уровне файрвола. Например, с помощью встроенной утилиты UFW это делается одной короткой командой: sudo ufw deny from IP_адрес.

  • Как защитить логи от удаления хакерами?

    Если злоумышленник получит наивысшие права root, он сотрет локальные файлы журналов. Чтобы этого избежать, настраивают централизованный сбор логов на изолированный сервер (например, с помощью системы Graylog, о которой мы говорили ранее).

Заключение

Регулярный анализ логов — это базовый навык, который позволяет вовремя заметить интерес хакеров к вашему проекту и заблокировать угрозу еще на этапе разведки. Помните: безопасность системы сильна настолько, насколько сильно её самое слабое звено. Чистый код, закрытые порты и контроль сетевых журналов гарантируют стабильный аптайм.

Поскольку глубокий анализ сетевых пакетов, парсинг логов в реальном времени и работа защитных систем (таких как Fail2ban, Zeek или Suricata) создают постоянную нагрузку на дисковую систему и процессор, безопасность требует качественной аппаратной базы.

И если вы сейчас находитесь в поиске надежного хостинг-решения под свои проекты, обратите внимание на наши услуги NVME VPS / Dedicated Server в MivoCloud.


Автор статьи — Anatolie Cohaniuc